﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;

namespace ArgusLib.Fractals.OrbitFractals
{
	public class RenderParameterBuddhabrot : IRenderParameter
	{
		public Color BackgroundColor { get; set; }
		public float RangeMultiplier { get; set; }
		public float OffsetMultiplier { get; set; }
		public Colorings Coloring { get; set; }
		public Color[] UserColors { get; set; }

		public RenderParameterBuddhabrot()
		{
			this.BackgroundColor = Color.Black;
			this.RangeMultiplier = 1f;
			this.OffsetMultiplier = 0;
			this.Coloring = Colorings.RedYellow;
			this.UserColors = new Color[] { Color.Blue, Color.White };
		}

		public RenderParameterBuddhabrot Clone()
		{
			RenderParameterBuddhabrot para = new RenderParameterBuddhabrot()
			{
				BackgroundColor = this.BackgroundColor,
				RangeMultiplier = this.RangeMultiplier,
				OffsetMultiplier = this.OffsetMultiplier,
				Coloring = this.Coloring,
				UserColors = new Color[this.UserColors.Length]
			};
			this.UserColors.CopyTo(para.UserColors, 0);
			return para;
		}

		object ICloneable.Clone()
		{
			return this.Clone();
		}

		public enum Colorings : byte
		{
			RedYellow,
			UserDefined
		}
	}
}
